# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# 建立者:        Young  
# Name:         less2_03
# Description:  hasattr、getattr函数
# Author:       asus
# Date:         2019/3/16
#-------------------------------------------------------------------------------


class Man:
    def great(self):
        return 'helo,helo'

def good():
    return 'asshole'

if __name__ == '__main__':
    m = Man()
    m.name = 'aaa' # 原函数没有加name方法，这里加上的，所以下面返回True，否则False
    print(hasattr(m,'name'))

    print('--------------------')
    great1 = getattr(m,'great',good) # 检测对象是否有great这个函数，如果没有就返回good函数
    print(great1())

    print('--------------------')
    great2 = getattr(m,'fantasy',good) # 检测对象中没有fantasy函数，所以返回good函数
    print(great2())

    print('--------------------')
    setattr(m,'name','bbb') # setattr是更新属性
    print(m.name)
